package cn.yunhe.proxy;

import cn.yunhe.reflect.ReflectServiceImpl;
import org.junit.Test;

/**
 * Created by zs on 2017/11/27.
 */
public class Demo {

    @Test
    public void testJDKProxy() {
        JdkProxyExample jdk = new JdkProxyExample();
        //绑定关系，因为挂在接口HelloWorld下，所以声明代理对象HelloWorld proxy
        HelloWorld proxy = (HelloWorld) jdk.bind(new HelloWorldImpl());
        //此时的HelloWorld已经是一个代理对象，它会进入代理的逻辑方法invoke里
        proxy.sayHelloWorld();
    }

    @Test
    public void testCGLIBProxy() {
        CglibProxyExample cpe = new CglibProxyExample();
        ReflectServiceImpl obj = (ReflectServiceImpl) cpe.getProxy(ReflectServiceImpl.class);
        obj.sayHelle("李四");
    }


}
